package com.nextel.project.cliente.rms;

import com.nextel.project.Configuracion;

import com.nextel.project.cliente.bean.ClienteBean;
import pe.com.nextel.rms.GestorRMS;
import pe.com.nextel.rms.Persistente;
import java.util.Stack;
import pe.com.nextel.util.ArrayList;
import pe.com.nextel.util.List;

/**
 *
 * @author eespinoza
 */
public class RMSCliente extends GestorRMS {
    private ClienteBean cliente = new ClienteBean();
    
    public RMSCliente() {
        super("RMS_CLIENTE");
    }
    
    public void grabarCliente(Stack objectStack) throws Exception {
        try {
            abrirRS();
            Object obj;  int i = 0;
            ClienteBean bean;
            List listaCliente = new ArrayList();
            //mientras haya datos en la pila
            while ((obj = objectStack.pop()) != null) {
                //si es propiamente el cliente
                
                bean = (ClienteBean) obj;
                if (i % Configuracion.RMS_CANTREG == 0 && !listaCliente.isEmpty()) {
                    int s = guardar(listaCliente);
                    listaCliente.clear();
                    System.gc();
                }
                listaCliente.add(bean);
                i++;
            }
            if (!listaCliente.isEmpty()) {
                guardar(listaCliente);
                listaCliente.clear();
                System.gc();
            }
            listaCliente = null;
        } finally {
            cerrarRS();
        }
    }
    
//    public void actualizarCliente(ClienteBean clientep) throws Exception {
//        try {
//            abrirRS();
//            byte[] array = getRecord(clientep.getIdRecodset());
//            List lista = clientep.readObject(array);
//            lista.set(clientep.getPosicion() - 1, clientep);
//            actualizarLista(clientep.getIdRecodset(), lista);
//        } finally {
//            cerrarRS();
//        }
//    }
    
//    public ClienteBean getCliente(int idRecordSet , int idPagina) throws Exception{
//        try {
//            abrirRS();
//            byte[] array = getRecord(idRecordSet);
//            ClienteBean clientep =  (ClienteBean)cliente.readObject(array).get(idPagina - 1);
//            clientep.setIdRecodset(idRecordSet);
//            clientep.setPosicion(idPagina);
//            return clientep;
//        } finally {
//            cerrarRS();
//        }
//    }
    
    protected Persistente createObjectBean() {
        return cliente;
    }
}
